home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (DO)
/
Micro on the Apple Volume 1 (1981)(Micro Ink)[no boot].zip
/
Micro on the Apple Volume 1 (1981)(Micro Ink)[no boot].do
/
BUBBLE.int
< prev
next >
Wrap
Text File
|
1996-12-24
|
3KB
|
86 lines
10 REM ************************
12 REM * *
14 REM * SORTING REVEALED *
16 REM * RICHARD C. VILE, JR. *
18 REM * *
20 REM * BUBBLE *
22 REM * *
24 REM * COPYRIGHT (C) 1981 *
25 REM * MICRO INK, INC. *
26 REM * CHELMSFORD, MA 01824 *
27 REM * ALL RIGHTS RESERVED *
28 REM * *
29 REM ************************
30 REM
40 TEXT :CALL -936
41 DIM A(100)
42 KBD=-16384:CLR=-16368:TITLE=500:INTRO=1000
44 DISPLAY=600:WAIT=800:COMPARE=900:INTERCHANGE=950
46 MUSIC=10473:TIME=766:TIMBRE=765:PITCH=767
48 GOSUB INTRO
50 GOSUB TITLE
90 FOR R=0 TO 100:A(R)=32767:NEXT R
100 FOR I=0 TO N
105 A(I)= RND (100):X=I:GOSUB DISPLAY
108 IF N=0 THEN 150
110 NEXT I
150 FOR I=1 TO NUM-1
152 FLAG=0
155 FOR J=0 TO N-I
158 FOR T=0 TO PDL (1):NEXT T
159 GOSUB COMPARE
160 IF A(J)<=A(J+1) THEN 200
163 X=100: POKE 50,127:A(100)=A(J):GOSUB DISPLAY
165 KEEP=A(J):GOSUB INTERCHANGE:X=J
170 POKE 50,63
173 A(J)=A(J+1):GOSUB DISPLAY:GOSUB INTERCHANGE: POKE 50,255
175 GOSUB DISPLAY:X=J+1: POKE 50,63
180 A(J+1)=KEEP:GOSUB DISPLAY:GOSUB INTERCHANGE: POKE 50,255
185 GOSUB DISPLAY
190 FLAG=1
195 KEY= PEEK (KBD):IF KEY<128 THEN 200
196 POKE CLR,0:GOSUB WAIT
200 NEXT J
202 IF FLAG=0 THEN 208
205 NEXT I
208 VTAB 24:TAB 21:PRINT "FINISHED<CTRL-G>";
210 IF PEEK (KBD)<128 THEN 210
220 POKE CLR,0:CALL -936:GOTO 48
500 TEXT :CALL -936
510 VTAB 1:FOR I=0 TO 9:TAB 7+3*I:PRINT I;:NEXT I
515 VTAB 2:TAB 7:FOR I=0 TO 9:PRINT "---";:NEXT I
520 FOR J=0 TO 9:VTAB 3+2*J:TAB 4:PRINT J;"! ";:NEXT J
525 VTAB 23:TAB 1:PRINT "TEMP=";:TAB 20
528 PRINT "BUBBLE SORT"
530 RETURN
600 COL=X MOD 10
610 ROW=X/10
620 VTAB 2*ROW+3:TAB 7+3*COL
630 IF A(X)<10 THEN PRINT " ";
635 PRINT A(X);
640 RETURN
800 IF KEY<> ASC("Q") THEN 810
805 TEXT :CALL -936:END
810 VTAB 2*ROW+3:TAB 6+3*COL:PRINT ">";
815 KEY= PEEK (KBD):IF KEY<128 THEN 810
817 VTAB 2*ROW+3:TAB 6+3*COL:PRINT " ";
820 POKE CLR,0:RETURN
900 REM *** TO REMOVE SOUND, 901 IS ADDED ***
901 RETURN
902 POKE PITCH,10: POKE TIME,5:CALL MUSIC
905 FOR DE=1 TO PDL (1):NEXT DE
910 RETURN
950 REM *** TO REMOVE INTERCHANGE SOUNDS, ADD 951 ***
951 RETURN
952 POKE PITCH,49: POKE TIME,3:CALL MUSIC
955 FOR DE=1 TO PDL (1):NEXT DE
960 RETURN
1000 VTAB 10:TAB 5:PRINT "I WILL SORT UP TO 100 POSITIVE"
1001 TAB 5:PRINT "INTEGERS INTO ASCENDING"
1002 TAB 5:PRINT "ORDER USING THE BUBBLE SORT."
1008 VTAB 15:TAB 10:INPUT "VALUE OF N, PLEASE",NUM:N=NUM-1
1009 IF NUM<=0 THEN 805
1010 IF NUM<=100 THEN RETURN
1015 TAB 10
1020 PRINT "TOO BIG!!!!":GOTO 1000